Code
suppressPackageStartupMessages(library(readxl))
suppressPackageStartupMessages(library(tidyverse))
suppressPackageStartupMessages(library(plotly))
suppressPackageStartupMessages(library(fmsb))
data = read_excel("Project_1_Data.xlsx", sheet = "pooled123")
filteredData = select(data, Date, PID, BSSQ_1:BSSQ_16, ASSQ_1:ASSQ_16, age, VRexperience, ssq_full, gender, sm)
#we only want to look at those that did not undergo social modelling conditions
filteredData = subset(filteredData, sm == "NO_SM")
#reclasss VR experience as factor (was chr)
filteredData$VRexperience = as.factor(filteredData$VRexperience)
#we want to filter this data even further and split it into age groups
#once in age groups, calculate the mean change for each of the age groups for each symptom
filteredData = mutate(filteredData, age_group = case_when(
age > 45 ~ "above 45",
age >= 38 ~ "38 to 45",
age >= 30 ~ "30 to 37",
age >= 22 ~ "22 to 29",
age >= 16 ~ "16 to 21"
))
symptoms = c("discomfort",
"fatigue",
"headache",
"eyestrain",
"difficulty_focusing",
"salivation",
"sweating",
"nausea",
"difficulty_concentrating",
"fullness_of_head",
"blurred_vision",
"dizziness_o",
"dizziness_c",
"vertigo",
"stomach_awareness",
"burping")
for (i in 1:length(symptoms)) {
filteredData[[paste0("d_", symptoms[[i]])]] <- filteredData[[paste0("ASSQ_", i)]] - filteredData[[paste0("BSSQ_", i)]]
} # Borna's friend made fun of us for doing this manually so we got chatGPT to fix it
yes_means_vector <- numeric(length(symptoms))
no_means_vector = numeric(length(symptoms))
# Loop through symptoms and calculate the mean for each one
for (i in 1:length(symptoms)) {
# Calculate the mean for the current symptom column
yes_means_vector[i] <- mean(filter(filteredData, VRexperience == "Yes")[[paste0("d_", symptoms[i])]])
no_means_vector[i] <- mean(filter(filteredData, VRexperience == "No")[[paste0("d_", symptoms[i])]])
}
# Create a data frame from the vector
means_per_symptom <- data.frame(symptom = symptoms, yes_mean_value = yes_means_vector, no_means_value = no_means_vector)